package entities;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table (name="sge_vendas", schema="sisgeremp")
public class Venda {
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column (name="id_venda")
	private long id;

	@Column (name="fornecedor")
	private String nomeFornecedor;
	
	@Column (name="vendedor")
	private String nomeVendedor;
	
	@Column (name="comprador")
	private String nomeComprador;
	
	@OneToMany (mappedBy="venda", fetch = FetchType.LAZY)
	@Cascade (CascadeType.ALL)
	private Collection<Produto> produtos;
	
	@Column (name="Data_venda")
	private Date dataVenda;
	
	@Column (name="valor_total")
	private BigDecimal valorTotal;
	
	@OneToMany (mappedBy="venda", fetch = FetchType.LAZY)
	@Cascade (CascadeType.ALL)
	private Collection<Pagamento> pagamentos;
	
	private long parcelas;

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * @return the produtos
	 */
	public Collection<Produto> getProdutos() {
		return produtos;
	}

	/**
	 * @param produtos the produtos to set
	 */
	public void setProdutos(ArrayList<Produto> produtos) {
		this.produtos = produtos;
	}

	/**
	 * @return the dataVenda
	 */
	public Date getDataVenda() {
		return dataVenda;
	}

	/**
	 * @param dataVenda the dataVenda to set
	 */
	public void setDataVenda(Date dataVenda) {
		this.dataVenda = dataVenda;
	}

	/**
	 * @return the valorTotal
	 */
	public BigDecimal getValorTotal() {
		return valorTotal;
	}

	/**
	 * @param valorTotal the valorTotal to set
	 */
	public void setValorTotal(BigDecimal valorTotal) {
		this.valorTotal = valorTotal;
	}

	/**
	 * @return the pagamentos
	 */
	public Collection<Pagamento> getPagamentos() {
		return pagamentos;
	}

	/**
	 * @param pagamentos the pagamentos to set
	 */
	public void setPagamentos(ArrayList<Pagamento> pagamentos) {
		this.pagamentos = pagamentos;
	}

	/**
	 * @return the parcelas
	 */
	public long getParcelas() {
		return parcelas;
	}

	/**
	 * @param parcelas the parcelas to set
	 */
	public void setParcelas(long parcelas) {
		this.parcelas = parcelas;
	}

	/**
	 * @return the nomeFornecedor
	 */
	public String getNomeFornecedor() {
		return nomeFornecedor;
	}

	/**
	 * @param nomeFornecedor the nomeFornecedor to set
	 */
	public void setNomeFornecedor(String nomeFornecedor) {
		this.nomeFornecedor = nomeFornecedor;
	}

	/**
	 * @return the nomeVendedor
	 */
	public String getNomeVendedor() {
		return nomeVendedor;
	}

	/**
	 * @param nomeVendedor the nomeVendedor to set
	 */
	public void setNomeVendedor(String nomeVendedor) {
		this.nomeVendedor = nomeVendedor;
	}

	/**
	 * @return the nomeComprador
	 */
	public String getNomeComprador() {
		return nomeComprador;
	}

	/**
	 * @param nomeComprador the nomeComprador to set
	 */
	public void setNomeComprador(String nomeComprador) {
		this.nomeComprador = nomeComprador;
	}
	

}
